﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Biblioteca.Model;
using Biblioteca.Repositorio;


namespace Biblioteca.Controlador
{
   public class ControladorRepresentada
    {
        RepositorioRepresentada repo_repre = new RepositorioRepresentada();

        public List<Representada> listar()  //criando um método de listar que vai acessar a classe conexao
        {
            List<Representada> dataTable = new List<Representada>();

            try
            {
                dataTable = repo_repre.listar_Representada();
            }
            catch (Exception e)
            {
                throw e;
            }
            return dataTable;  //retornando uma tabela
        }

        public void incluir(Representada repre)
        {
            try
            {
                if (repre.RazaoSocial.Trim() == "")
                {
                    throw new ArgumentException("Razão Social não pode ficar em branco");
                }
                if ((repre.Cnpj.Trim() == "") || (repre.Cnpj.Length < 14))
                {
                    throw new ArgumentException("CNPJ não preenchido corretamente");
                }
                if (repre.Endereco.Trim() == "")
                {
                    throw new ArgumentException("Endereço não pode ficar em Branco");
                }
                if (repre.Cidade.Trim() == "")
                {
                    throw new ArgumentException("Cidade não pode ficar em branco");
                }
                if (repre.Contato.Trim() == "")
                {
                    throw new ArgumentException("Contato não pode ficar em branco");
                }
                if ((repre.Telefone.Trim() == "") || (repre.Telefone.Trim().Length < 11))
                {
                    throw new ArgumentException("Telefone não foi preenchido corretamente");
                }
                repo_repre.incluir_Representada(repre);
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        public Boolean consultar_CNPJRepresentada(Representada repre)
        {
            List<Representada> consulta = new List<Representada>();
            consulta = listar();
            bool resultado = false;

            foreach (var representada in consulta)
            {
                if (repre.Cnpj.Equals(representada.Cnpj))
                {
                    resultado = true;
                }
            }
            return resultado;
        }

        public void excluir(Representada repre)
        {
            try
            {
                repo_repre.excluir_Representada(repre);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
    }
}
